

<!DOCTYPE html>
<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]-->
<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
<head>
  <meta charset="utf-8">
  
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta name="Description" content="scikit-learn: machine learning in Python">

  
  <title>Version 0.15.2 &mdash; scikit-learn 0.22 documentation</title>
  
  <link rel="canonical" href="http://scikit-learn.org/stable/whats_new/v0.15.html" />

  
  <link rel="shortcut icon" href="../_static/favicon.ico"/>
  

  <link rel="stylesheet" href="../_static/css/vendor/bootstrap.min.css" type="text/css" />
  <link rel="stylesheet" href="../_static/gallery.css" type="text/css" />
  <link rel="stylesheet" href="../_static/css/theme.css" type="text/css" />
<script id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script>
<script src="../_static/jquery.js"></script> 
</head>
<body>
<nav id="navbar" class="sk-docs-navbar navbar navbar-expand-md navbar-light bg-light py-0">
  <div class="container-fluid sk-docs-container px-0">
      <a class="navbar-brand py-0" href="../index.html">
        <img
          class="sk-brand-img"
          src="../_static/scikit-learn-logo-small.png"
          alt="logo"/>
      </a>
    <button
      id="sk-navbar-toggler"
      class="navbar-toggler"
      type="button"
      data-toggle="collapse"
      data-target="#navbarSupportedContent"
      aria-controls="navbarSupportedContent"
      aria-expanded="false"
      aria-label="Toggle navigation"
    >
      <span class="navbar-toggler-icon"></span>
    </button>

    <div class="sk-navbar-collapse collapse navbar-collapse" id="navbarSupportedContent">
      <ul class="navbar-nav mr-auto">
        <li class="nav-item">
          <a class="sk-nav-link nav-link" href="../install.html">Install</a>
        </li>
        <li class="nav-item">
          <a class="sk-nav-link nav-link" href="../user_guide.html">User Guide</a>
        </li>
        <li class="nav-item">
          <a class="sk-nav-link nav-link" href="../modules/classes.html">API</a>
        </li>
        <li class="nav-item">
          <a class="sk-nav-link nav-link" href="../auto_examples/index.html">Examples</a>
        </li>
        <li class="nav-item">
          <a class="sk-nav-link nav-link nav-more-item-mobile-items" href="../getting_started.html">Getting Started</a>
        </li>
        <li class="nav-item">
          <a class="sk-nav-link nav-link nav-more-item-mobile-items" href="../tutorial/index.html">Tutorial</a>
        </li>
        <li class="nav-item">
          <a class="sk-nav-link nav-link nav-more-item-mobile-items" href="../glossary.html">Glossary</a>
        </li>
        <li class="nav-item">
          <a class="sk-nav-link nav-link nav-more-item-mobile-items" href="../developers/index.html">Development</a>
        </li>
        <li class="nav-item">
          <a class="sk-nav-link nav-link nav-more-item-mobile-items" href="../faq.html">FAQ</a>
        </li>
        <li class="nav-item">
          <a class="sk-nav-link nav-link nav-more-item-mobile-items" href="../related_projects.html">Related packages</a>
        </li>
        <li class="nav-item">
          <a class="sk-nav-link nav-link nav-more-item-mobile-items" href="../roadmap.html">Roadmap</a>
        </li>
        <li class="nav-item">
          <a class="sk-nav-link nav-link nav-more-item-mobile-items" href="../about.html">About us</a>
        </li>
        <li class="nav-item">
          <a class="sk-nav-link nav-link nav-more-item-mobile-items" href="https://github.com/scikit-learn/scikit-learn">GitHub</a>
        </li>
        <li class="nav-item">
          <a class="sk-nav-link nav-link nav-more-item-mobile-items" href="https://scikit-learn.org/dev/versions.html">Other Versions</a>
        </li>
        <li class="nav-item dropdown nav-more-item-dropdown">
          <a class="sk-nav-link nav-link dropdown-toggle" href="#" id="navbarDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">More</a>
          <div class="dropdown-menu" aria-labelledby="navbarDropdown">
              <a class="sk-nav-dropdown-item dropdown-item" href="../getting_started.html">Getting Started</a>
              <a class="sk-nav-dropdown-item dropdown-item" href="../tutorial/index.html">Tutorial</a>
              <a class="sk-nav-dropdown-item dropdown-item" href="../glossary.html">Glossary</a>
              <a class="sk-nav-dropdown-item dropdown-item" href="../developers/index.html">Development</a>
              <a class="sk-nav-dropdown-item dropdown-item" href="../faq.html">FAQ</a>
              <a class="sk-nav-dropdown-item dropdown-item" href="../related_projects.html">Related packages</a>
              <a class="sk-nav-dropdown-item dropdown-item" href="../roadmap.html">Roadmap</a>
              <a class="sk-nav-dropdown-item dropdown-item" href="../about.html">About us</a>
              <a class="sk-nav-dropdown-item dropdown-item" href="https://github.com/scikit-learn/scikit-learn">GitHub</a>
              <a class="sk-nav-dropdown-item dropdown-item" href="https://scikit-learn.org/dev/versions.html">Other Versions</a>
          </div>
        </li>
      </ul>
      <div id="searchbox" role="search">
          <div class="searchformwrapper">
          <form class="search" action="../search.html" method="get">
            <input class="sk-search-text-input" type="text" name="q" aria-labelledby="searchlabel" />
            <input class="sk-search-text-btn" type="submit" value="Go" />
          </form>
          </div>
      </div>
    </div>
  </div>
</nav>
<div class="d-flex" id="sk-doc-wrapper">
    <input type="checkbox" name="sk-toggle-checkbox" id="sk-toggle-checkbox">
    <label id="sk-sidemenu-toggle" class="sk-btn-toggle-toc btn sk-btn-primary" for="sk-toggle-checkbox">Toggle Menu</label>
    <div id="sk-sidebar-wrapper" class="border-right">
      <div class="sk-sidebar-toc-wrapper">
        <div class="sk-sidebar-toc-logo">
          <a href="../index.html">
            <img
              class="sk-brand-img"
              src="../_static/scikit-learn-logo-small.png"
              alt="logo"/>
          </a>
        </div>
        <div class="btn-group w-100 mb-2" role="group" aria-label="rellinks">
            <a href="v0.16.html" role="button" class="btn sk-btn-rellink py-1" sk-rellink-tooltip="Version 0.16.1">Prev</a><a href="../whats_new.html" role="button" class="btn sk-btn-rellink py-1" sk-rellink-tooltip="Release History">Up</a>
            <a href="v0.14.html" role="button" class="btn sk-btn-rellink py-1" sk-rellink-tooltip="Version 0.14">Next</a>
        </div>
        <div class="alert alert-danger p-1 mb-2" role="alert">
          <p class="text-center mb-0">
          <strong>scikit-learn 0.22</strong><br/>
          <a href="http://scikit-learn.org/dev/versions.html">Other versions</a>
          </p>
        </div>
        <div class="alert alert-warning p-1 mb-2" role="alert">
          <p class="text-center mb-0">
            Please <a class="font-weight-bold" href="../about.html#citing-scikit-learn"><string>cite us</string></a> if you use the software.
          </p>
        </div>
          <div class="sk-sidebar-toc">
            <ul>
<li><a class="reference internal" href="#">Version 0.15.2</a><ul>
<li><a class="reference internal" href="#bug-fixes">Bug fixes</a></li>
</ul>
</li>
<li><a class="reference internal" href="#version-0-15-1">Version 0.15.1</a><ul>
<li><a class="reference internal" href="#id1">Bug fixes</a></li>
</ul>
</li>
<li><a class="reference internal" href="#version-0-15">Version 0.15</a><ul>
<li><a class="reference internal" href="#highlights">Highlights</a></li>
<li><a class="reference internal" href="#changelog">Changelog</a><ul>
<li><a class="reference internal" href="#new-features">New features</a></li>
<li><a class="reference internal" href="#enhancements">Enhancements</a></li>
<li><a class="reference internal" href="#documentation-improvements">Documentation improvements</a></li>
<li><a class="reference internal" href="#id2">Bug fixes</a></li>
</ul>
</li>
<li><a class="reference internal" href="#api-changes-summary">API changes summary</a></li>
<li><a class="reference internal" href="#people">People</a></li>
</ul>
</li>
</ul>

          </div>
      </div>
    </div>
    <div id="sk-page-content-wrapper">
      <div class="sk-page-content container-fluid body px-md-3" role="main">
        
  <div class="section" id="version-0-15-2">
<span id="changes-0-15-2"></span><h1>Version 0.15.2<a class="headerlink" href="#version-0-15-2" title="Permalink to this headline">¶</a></h1>
<p><strong>September 4, 2014</strong></p>
<div class="section" id="bug-fixes">
<h2>Bug fixes<a class="headerlink" href="#bug-fixes" title="Permalink to this headline">¶</a></h2>
<ul class="simple">
<li><p>Fixed handling of the <code class="docutils literal notranslate"><span class="pre">p</span></code> parameter of the Minkowski distance that was
previously ignored in nearest neighbors models. By <a class="reference external" href="https://github.com/nmayorov">Nikolay
Mayorov</a>.</p></li>
<li><p>Fixed duplicated alphas in <a class="reference internal" href="../modules/generated/sklearn.linear_model.LassoLars.html#sklearn.linear_model.LassoLars" title="sklearn.linear_model.LassoLars"><code class="xref py py-class docutils literal notranslate"><span class="pre">linear_model.LassoLars</span></code></a> with early
stopping on 32 bit Python. By <a class="reference external" href="https://twitter.com/ogrisel">Olivier Grisel</a> and <a class="reference external" href="http://fa.bianp.net">Fabian Pedregosa</a>.</p></li>
<li><p>Fixed the build under Windows when scikit-learn is built with MSVC while
NumPy is built with MinGW. By <a class="reference external" href="https://twitter.com/ogrisel">Olivier Grisel</a> and <a class="reference external" href="https://github.com/FedericoV">Federico
Vaggi</a>.</p></li>
<li><p>Fixed an array index overflow bug in the coordinate descent solver. By
<a class="reference external" href="http://gael-varoquaux.info">Gael Varoquaux</a>.</p></li>
<li><p>Better handling of numpy 1.9 deprecation warnings. By <a class="reference external" href="http://gael-varoquaux.info">Gael Varoquaux</a>.</p></li>
<li><p>Removed unnecessary data copy in <a class="reference internal" href="../modules/generated/sklearn.cluster.KMeans.html#sklearn.cluster.KMeans" title="sklearn.cluster.KMeans"><code class="xref py py-class docutils literal notranslate"><span class="pre">cluster.KMeans</span></code></a>.
By <a class="reference external" href="http://gael-varoquaux.info">Gael Varoquaux</a>.</p></li>
<li><p>Explicitly close open files to avoid <code class="docutils literal notranslate"><span class="pre">ResourceWarnings</span></code> under Python 3.
By Calvin Giles.</p></li>
<li><p>The <code class="docutils literal notranslate"><span class="pre">transform</span></code> of <a class="reference internal" href="../modules/generated/sklearn.discriminant_analysis.LinearDiscriminantAnalysis.html#sklearn.discriminant_analysis.LinearDiscriminantAnalysis" title="sklearn.discriminant_analysis.LinearDiscriminantAnalysis"><code class="xref py py-class docutils literal notranslate"><span class="pre">discriminant_analysis.LinearDiscriminantAnalysis</span></code></a>
now projects the input on the most discriminant directions. By Martin Billinger.</p></li>
<li><p>Fixed potential overflow in <code class="docutils literal notranslate"><span class="pre">_tree.safe_realloc</span></code> by <a class="reference external" href="https://github.com/larsmans">Lars Buitinck</a>.</p></li>
<li><p>Performance optimization in <a class="reference internal" href="../modules/generated/sklearn.isotonic.IsotonicRegression.html#sklearn.isotonic.IsotonicRegression" title="sklearn.isotonic.IsotonicRegression"><code class="xref py py-class docutils literal notranslate"><span class="pre">isotonic.IsotonicRegression</span></code></a>.
By Robert Bradshaw.</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">nose</span></code> is non-longer a runtime dependency to import <code class="docutils literal notranslate"><span class="pre">sklearn</span></code>, only for
running the tests. By <a class="reference external" href="https://joelnothman.com/">Joel Nothman</a>.</p></li>
<li><p>Many documentation and website fixes by <a class="reference external" href="https://joelnothman.com/">Joel Nothman</a>, <a class="reference external" href="https://github.com/larsmans">Lars Buitinck</a>
<a class="reference external" href="https://github.com/MattpSoftware">Matt Pico</a>, and others.</p></li>
</ul>
</div>
</div>
<div class="section" id="version-0-15-1">
<span id="changes-0-15-1"></span><h1>Version 0.15.1<a class="headerlink" href="#version-0-15-1" title="Permalink to this headline">¶</a></h1>
<p><strong>August 1, 2014</strong></p>
<div class="section" id="id1">
<h2>Bug fixes<a class="headerlink" href="#id1" title="Permalink to this headline">¶</a></h2>
<ul class="simple">
<li><p>Made <code class="xref py py-func docutils literal notranslate"><span class="pre">cross_validation.cross_val_score</span></code> use
<code class="xref py py-class docutils literal notranslate"><span class="pre">cross_validation.KFold</span></code> instead of
<code class="xref py py-class docutils literal notranslate"><span class="pre">cross_validation.StratifiedKFold</span></code> on multi-output classification
problems. By <a class="reference external" href="https://github.com/nmayorov">Nikolay Mayorov</a>.</p></li>
<li><p>Support unseen labels <a class="reference internal" href="../modules/generated/sklearn.preprocessing.LabelBinarizer.html#sklearn.preprocessing.LabelBinarizer" title="sklearn.preprocessing.LabelBinarizer"><code class="xref py py-class docutils literal notranslate"><span class="pre">preprocessing.LabelBinarizer</span></code></a> to restore
the default behavior of 0.14.1 for backward compatibility. By
<a class="reference external" href="https://github.com/hamsal">Hamzeh Alsalhi</a>.</p></li>
<li><p>Fixed the <a class="reference internal" href="../modules/generated/sklearn.cluster.KMeans.html#sklearn.cluster.KMeans" title="sklearn.cluster.KMeans"><code class="xref py py-class docutils literal notranslate"><span class="pre">cluster.KMeans</span></code></a> stopping criterion that prevented early
convergence detection. By Edward Raff and <a class="reference external" href="http://gael-varoquaux.info">Gael Varoquaux</a>.</p></li>
<li><p>Fixed the behavior of <a class="reference internal" href="../modules/generated/sklearn.multiclass.OneVsOneClassifier.html#sklearn.multiclass.OneVsOneClassifier" title="sklearn.multiclass.OneVsOneClassifier"><code class="xref py py-class docutils literal notranslate"><span class="pre">multiclass.OneVsOneClassifier</span></code></a>.
in case of ties at the per-class vote level by computing the correct
per-class sum of prediction scores. By <a class="reference external" href="https://amueller.github.io/">Andreas Müller</a>.</p></li>
<li><p>Made <code class="xref py py-func docutils literal notranslate"><span class="pre">cross_validation.cross_val_score</span></code> and
<code class="xref py py-class docutils literal notranslate"><span class="pre">grid_search.GridSearchCV</span></code> accept Python lists as input data.
This is especially useful for cross-validation and model selection of
text processing pipelines. By <a class="reference external" href="https://amueller.github.io/">Andreas Müller</a>.</p></li>
<li><p>Fixed data input checks of most estimators to accept input data that
implements the NumPy <code class="docutils literal notranslate"><span class="pre">__array__</span></code> protocol. This is the case for
for <code class="docutils literal notranslate"><span class="pre">pandas.Series</span></code> and <code class="docutils literal notranslate"><span class="pre">pandas.DataFrame</span></code> in recent versions of
pandas. By <a class="reference external" href="http://gael-varoquaux.info">Gael Varoquaux</a>.</p></li>
<li><p>Fixed a regression for <a class="reference internal" href="../modules/generated/sklearn.linear_model.SGDClassifier.html#sklearn.linear_model.SGDClassifier" title="sklearn.linear_model.SGDClassifier"><code class="xref py py-class docutils literal notranslate"><span class="pre">linear_model.SGDClassifier</span></code></a> with
<code class="docutils literal notranslate"><span class="pre">class_weight=&quot;auto&quot;</span></code> on data with non-contiguous labels. By
<a class="reference external" href="https://twitter.com/ogrisel">Olivier Grisel</a>.</p></li>
</ul>
</div>
</div>
<div class="section" id="version-0-15">
<span id="changes-0-15"></span><h1>Version 0.15<a class="headerlink" href="#version-0-15" title="Permalink to this headline">¶</a></h1>
<p><strong>July 15, 2014</strong></p>
<div class="section" id="highlights">
<h2>Highlights<a class="headerlink" href="#highlights" title="Permalink to this headline">¶</a></h2>
<ul class="simple">
<li><p>Many speed and memory improvements all across the code</p></li>
<li><p>Huge speed and memory improvements to random forests (and extra
trees) that also benefit better from parallel computing.</p></li>
<li><p>Incremental fit to <a class="reference internal" href="../modules/generated/sklearn.neural_network.BernoulliRBM.html#sklearn.neural_network.BernoulliRBM" title="sklearn.neural_network.BernoulliRBM"><code class="xref py py-class docutils literal notranslate"><span class="pre">BernoulliRBM</span></code></a></p></li>
<li><p>Added <a class="reference internal" href="../modules/generated/sklearn.cluster.AgglomerativeClustering.html#sklearn.cluster.AgglomerativeClustering" title="sklearn.cluster.AgglomerativeClustering"><code class="xref py py-class docutils literal notranslate"><span class="pre">cluster.AgglomerativeClustering</span></code></a> for hierarchical
agglomerative clustering with average linkage, complete linkage and
ward strategies.</p></li>
<li><p>Added <a class="reference internal" href="../modules/generated/sklearn.linear_model.RANSACRegressor.html#sklearn.linear_model.RANSACRegressor" title="sklearn.linear_model.RANSACRegressor"><code class="xref py py-class docutils literal notranslate"><span class="pre">linear_model.RANSACRegressor</span></code></a> for robust regression
models.</p></li>
<li><p>Added dimensionality reduction with <a class="reference internal" href="../modules/generated/sklearn.manifold.TSNE.html#sklearn.manifold.TSNE" title="sklearn.manifold.TSNE"><code class="xref py py-class docutils literal notranslate"><span class="pre">manifold.TSNE</span></code></a> which can be
used to visualize high-dimensional data.</p></li>
</ul>
</div>
<div class="section" id="changelog">
<h2>Changelog<a class="headerlink" href="#changelog" title="Permalink to this headline">¶</a></h2>
<div class="section" id="new-features">
<h3>New features<a class="headerlink" href="#new-features" title="Permalink to this headline">¶</a></h3>
<ul class="simple">
<li><p>Added <a class="reference internal" href="../modules/generated/sklearn.ensemble.BaggingClassifier.html#sklearn.ensemble.BaggingClassifier" title="sklearn.ensemble.BaggingClassifier"><code class="xref py py-class docutils literal notranslate"><span class="pre">ensemble.BaggingClassifier</span></code></a> and
<a class="reference internal" href="../modules/generated/sklearn.ensemble.BaggingRegressor.html#sklearn.ensemble.BaggingRegressor" title="sklearn.ensemble.BaggingRegressor"><code class="xref py py-class docutils literal notranslate"><span class="pre">ensemble.BaggingRegressor</span></code></a> meta-estimators for ensembling
any kind of base estimator. See the <a class="reference internal" href="../modules/ensemble.html#bagging"><span class="std std-ref">Bagging</span></a> section of
the user guide for details and examples. By <a class="reference external" href="http://www.montefiore.ulg.ac.be/~glouppe/">Gilles Louppe</a>.</p></li>
<li><p>New unsupervised feature selection algorithm
<a class="reference internal" href="../modules/generated/sklearn.feature_selection.VarianceThreshold.html#sklearn.feature_selection.VarianceThreshold" title="sklearn.feature_selection.VarianceThreshold"><code class="xref py py-class docutils literal notranslate"><span class="pre">feature_selection.VarianceThreshold</span></code></a>, by <a class="reference external" href="https://github.com/larsmans">Lars Buitinck</a>.</p></li>
<li><p>Added <a class="reference internal" href="../modules/generated/sklearn.linear_model.RANSACRegressor.html#sklearn.linear_model.RANSACRegressor" title="sklearn.linear_model.RANSACRegressor"><code class="xref py py-class docutils literal notranslate"><span class="pre">linear_model.RANSACRegressor</span></code></a> meta-estimator for the robust
fitting of regression models. By <a class="reference external" href="https://github.com/ahojnnes">Johannes Schönberger</a>.</p></li>
<li><p>Added <a class="reference internal" href="../modules/generated/sklearn.cluster.AgglomerativeClustering.html#sklearn.cluster.AgglomerativeClustering" title="sklearn.cluster.AgglomerativeClustering"><code class="xref py py-class docutils literal notranslate"><span class="pre">cluster.AgglomerativeClustering</span></code></a> for hierarchical
agglomerative clustering with average linkage, complete linkage and
ward strategies, by  <a class="reference external" href="https://github.com/nellev">Nelle Varoquaux</a> and <a class="reference external" href="http://gael-varoquaux.info">Gael Varoquaux</a>.</p></li>
<li><p>Shorthand constructors <a class="reference internal" href="../modules/generated/sklearn.pipeline.make_pipeline.html#sklearn.pipeline.make_pipeline" title="sklearn.pipeline.make_pipeline"><code class="xref py py-func docutils literal notranslate"><span class="pre">pipeline.make_pipeline</span></code></a> and
<a class="reference internal" href="../modules/generated/sklearn.pipeline.make_union.html#sklearn.pipeline.make_union" title="sklearn.pipeline.make_union"><code class="xref py py-func docutils literal notranslate"><span class="pre">pipeline.make_union</span></code></a> were added by <a class="reference external" href="https://github.com/larsmans">Lars Buitinck</a>.</p></li>
<li><p>Shuffle option for <code class="xref py py-class docutils literal notranslate"><span class="pre">cross_validation.StratifiedKFold</span></code>.
By <a class="reference external" href="https://github.com/jblackburne">Jeffrey Blackburne</a>.</p></li>
<li><p>Incremental learning (<code class="docutils literal notranslate"><span class="pre">partial_fit</span></code>) for Gaussian Naive Bayes by
Imran Haque.</p></li>
<li><p>Added <code class="docutils literal notranslate"><span class="pre">partial_fit</span></code> to <a class="reference internal" href="../modules/generated/sklearn.neural_network.BernoulliRBM.html#sklearn.neural_network.BernoulliRBM" title="sklearn.neural_network.BernoulliRBM"><code class="xref py py-class docutils literal notranslate"><span class="pre">BernoulliRBM</span></code></a>
By <a class="reference external" href="https://github.com/dsullivan7">Danny Sullivan</a>.</p></li>
<li><p>Added <code class="xref py py-func docutils literal notranslate"><span class="pre">learning_curve</span></code> utility to
chart performance with respect to training size. See
<a class="reference internal" href="../auto_examples/model_selection/plot_learning_curve.html#sphx-glr-auto-examples-model-selection-plot-learning-curve-py"><span class="std std-ref">Plotting Learning Curves</span></a>. By Alexander Fabisch.</p></li>
<li><p>Add positive option in <a class="reference internal" href="../modules/generated/sklearn.linear_model.LassoCV.html#sklearn.linear_model.LassoCV" title="sklearn.linear_model.LassoCV"><code class="xref py py-class docutils literal notranslate"><span class="pre">LassoCV</span></code></a> and
<a class="reference internal" href="../modules/generated/sklearn.linear_model.ElasticNetCV.html#sklearn.linear_model.ElasticNetCV" title="sklearn.linear_model.ElasticNetCV"><code class="xref py py-class docutils literal notranslate"><span class="pre">ElasticNetCV</span></code></a>.
By Brian Wignall and <a class="reference external" href="http://alexandre.gramfort.net">Alexandre Gramfort</a>.</p></li>
<li><p>Added <a class="reference internal" href="../modules/generated/sklearn.linear_model.MultiTaskElasticNetCV.html#sklearn.linear_model.MultiTaskElasticNetCV" title="sklearn.linear_model.MultiTaskElasticNetCV"><code class="xref py py-class docutils literal notranslate"><span class="pre">linear_model.MultiTaskElasticNetCV</span></code></a> and
<a class="reference internal" href="../modules/generated/sklearn.linear_model.MultiTaskLassoCV.html#sklearn.linear_model.MultiTaskLassoCV" title="sklearn.linear_model.MultiTaskLassoCV"><code class="xref py py-class docutils literal notranslate"><span class="pre">linear_model.MultiTaskLassoCV</span></code></a>. By <a class="reference external" href="https://manojbits.wordpress.com">Manoj Kumar</a>.</p></li>
<li><p>Added <a class="reference internal" href="../modules/generated/sklearn.manifold.TSNE.html#sklearn.manifold.TSNE" title="sklearn.manifold.TSNE"><code class="xref py py-class docutils literal notranslate"><span class="pre">manifold.TSNE</span></code></a>. By Alexander Fabisch.</p></li>
</ul>
</div>
<div class="section" id="enhancements">
<h3>Enhancements<a class="headerlink" href="#enhancements" title="Permalink to this headline">¶</a></h3>
<ul class="simple">
<li><p>Add sparse input support to <a class="reference internal" href="../modules/generated/sklearn.ensemble.AdaBoostClassifier.html#sklearn.ensemble.AdaBoostClassifier" title="sklearn.ensemble.AdaBoostClassifier"><code class="xref py py-class docutils literal notranslate"><span class="pre">ensemble.AdaBoostClassifier</span></code></a> and
<a class="reference internal" href="../modules/generated/sklearn.ensemble.AdaBoostRegressor.html#sklearn.ensemble.AdaBoostRegressor" title="sklearn.ensemble.AdaBoostRegressor"><code class="xref py py-class docutils literal notranslate"><span class="pre">ensemble.AdaBoostRegressor</span></code></a> meta-estimators.
By <a class="reference external" href="https://github.com/hamsal">Hamzeh Alsalhi</a>.</p></li>
<li><p>Memory improvements of decision trees, by <a class="reference external" href="http://www.ajoly.org">Arnaud Joly</a>.</p></li>
<li><p>Decision trees can now be built in best-first manner by using <code class="docutils literal notranslate"><span class="pre">max_leaf_nodes</span></code>
as the stopping criteria. Refactored the tree code to use either a
stack or a priority queue for tree building.
By <a class="reference external" href="https://sites.google.com/site/peterprettenhofer/">Peter Prettenhofer</a> and <a class="reference external" href="http://www.montefiore.ulg.ac.be/~glouppe/">Gilles Louppe</a>.</p></li>
<li><p>Decision trees can now be fitted on fortran- and c-style arrays, and
non-continuous arrays without the need to make a copy.
If the input array has a different dtype than <code class="docutils literal notranslate"><span class="pre">np.float32</span></code>, a fortran-
style copy will be made since fortran-style memory layout has speed
advantages. By <a class="reference external" href="https://sites.google.com/site/peterprettenhofer/">Peter Prettenhofer</a> and <a class="reference external" href="http://www.montefiore.ulg.ac.be/~glouppe/">Gilles Louppe</a>.</p></li>
<li><p>Speed improvement of regression trees by optimizing the
the computation of the mean square error criterion. This lead
to speed improvement of the tree, forest and gradient boosting tree
modules. By <a class="reference external" href="http://www.ajoly.org">Arnaud Joly</a></p></li>
<li><p>The <code class="docutils literal notranslate"><span class="pre">img_to_graph</span></code> and <code class="docutils literal notranslate"><span class="pre">grid_tograph</span></code> functions in
<a class="reference internal" href="../modules/classes.html#module-sklearn.feature_extraction.image" title="sklearn.feature_extraction.image"><code class="xref py py-mod docutils literal notranslate"><span class="pre">sklearn.feature_extraction.image</span></code></a> now return <code class="docutils literal notranslate"><span class="pre">np.ndarray</span></code>
instead of <code class="docutils literal notranslate"><span class="pre">np.matrix</span></code> when <code class="docutils literal notranslate"><span class="pre">return_as=np.ndarray</span></code>.  See the
Notes section for more information on compatibility.</p></li>
<li><p>Changed the internal storage of decision trees to use a struct array.
This fixed some small bugs, while improving code and providing a small
speed gain. By <a class="reference external" href="https://joelnothman.com/">Joel Nothman</a>.</p></li>
<li><p>Reduce memory usage and overhead when fitting and predicting with forests
of randomized trees in parallel with <code class="docutils literal notranslate"><span class="pre">n_jobs</span> <span class="pre">!=</span> <span class="pre">1</span></code> by leveraging new
threading backend of joblib 0.8 and releasing the GIL in the tree fitting
Cython code.  By <a class="reference external" href="https://twitter.com/ogrisel">Olivier Grisel</a> and <a class="reference external" href="http://www.montefiore.ulg.ac.be/~glouppe/">Gilles Louppe</a>.</p></li>
<li><p>Speed improvement of the <code class="xref py py-mod docutils literal notranslate"><span class="pre">sklearn.ensemble.gradient_boosting</span></code> module.
By <a class="reference external" href="http://www.montefiore.ulg.ac.be/~glouppe/">Gilles Louppe</a> and <a class="reference external" href="https://sites.google.com/site/peterprettenhofer/">Peter Prettenhofer</a>.</p></li>
<li><p>Various enhancements to the  <code class="xref py py-mod docutils literal notranslate"><span class="pre">sklearn.ensemble.gradient_boosting</span></code>
module: a <code class="docutils literal notranslate"><span class="pre">warm_start</span></code> argument to fit additional trees,
a <code class="docutils literal notranslate"><span class="pre">max_leaf_nodes</span></code> argument to fit GBM style trees,
a <code class="docutils literal notranslate"><span class="pre">monitor</span></code> fit argument to inspect the estimator during training, and
refactoring of the verbose code. By <a class="reference external" href="https://sites.google.com/site/peterprettenhofer/">Peter Prettenhofer</a>.</p></li>
<li><p>Faster <code class="xref py py-class docutils literal notranslate"><span class="pre">sklearn.ensemble.ExtraTrees</span></code> by caching feature values.
By <a class="reference external" href="http://www.ajoly.org">Arnaud Joly</a>.</p></li>
<li><p>Faster depth-based tree building algorithm such as decision tree,
random forest, extra trees or gradient tree boosting (with depth based
growing strategy) by avoiding trying to split on found constant features
in the sample subset. By <a class="reference external" href="http://www.ajoly.org">Arnaud Joly</a>.</p></li>
<li><p>Add <code class="docutils literal notranslate"><span class="pre">min_weight_fraction_leaf</span></code> pre-pruning parameter to tree-based
methods: the minimum weighted fraction of the input samples required to be
at a leaf node. By <a class="reference external" href="https://github.com/ndawe">Noel Dawe</a>.</p></li>
<li><p>Added <a class="reference internal" href="../modules/generated/sklearn.metrics.pairwise_distances_argmin_min.html#sklearn.metrics.pairwise_distances_argmin_min" title="sklearn.metrics.pairwise_distances_argmin_min"><code class="xref py py-func docutils literal notranslate"><span class="pre">metrics.pairwise_distances_argmin_min</span></code></a>, by Philippe Gervais.</p></li>
<li><p>Added predict method to <a class="reference internal" href="../modules/generated/sklearn.cluster.AffinityPropagation.html#sklearn.cluster.AffinityPropagation" title="sklearn.cluster.AffinityPropagation"><code class="xref py py-class docutils literal notranslate"><span class="pre">cluster.AffinityPropagation</span></code></a> and
<a class="reference internal" href="../modules/generated/sklearn.cluster.MeanShift.html#sklearn.cluster.MeanShift" title="sklearn.cluster.MeanShift"><code class="xref py py-class docutils literal notranslate"><span class="pre">cluster.MeanShift</span></code></a>, by <a class="reference external" href="http://www.mblondel.org">Mathieu Blondel</a>.</p></li>
<li><p>Vector and matrix multiplications have been optimised throughout the
library by <a class="reference external" href="http://denis-engemann.de">Denis Engemann</a>, and <a class="reference external" href="http://alexandre.gramfort.net">Alexandre Gramfort</a>.
In particular, they should take less memory with older NumPy versions
(prior to 1.7.2).</p></li>
<li><p>Precision-recall and ROC examples now use train_test_split, and have more
explanation of why these metrics are useful. By <a class="reference external" href="https://kastnerkyle.github.io/">Kyle Kastner</a></p></li>
<li><p>The training algorithm for <a class="reference internal" href="../modules/generated/sklearn.decomposition.NMF.html#sklearn.decomposition.NMF" title="sklearn.decomposition.NMF"><code class="xref py py-class docutils literal notranslate"><span class="pre">decomposition.NMF</span></code></a> is faster for
sparse matrices and has much lower memory complexity, meaning it will
scale up gracefully to large datasets. By <a class="reference external" href="https://github.com/larsmans">Lars Buitinck</a>.</p></li>
<li><p>Added svd_method option with default value to “randomized” to
<a class="reference internal" href="../modules/generated/sklearn.decomposition.FactorAnalysis.html#sklearn.decomposition.FactorAnalysis" title="sklearn.decomposition.FactorAnalysis"><code class="xref py py-class docutils literal notranslate"><span class="pre">decomposition.FactorAnalysis</span></code></a> to save memory and
significantly speedup computation by <a class="reference external" href="http://denis-engemann.de">Denis Engemann</a>, and
<a class="reference external" href="http://alexandre.gramfort.net">Alexandre Gramfort</a>.</p></li>
<li><p>Changed <code class="xref py py-class docutils literal notranslate"><span class="pre">cross_validation.StratifiedKFold</span></code> to try and
preserve as much of the original ordering of samples as possible so as
not to hide overfitting on datasets with a non-negligible level of
samples dependency.
By <a class="reference external" href="http://danielnouri.org">Daniel Nouri</a> and <a class="reference external" href="https://twitter.com/ogrisel">Olivier Grisel</a>.</p></li>
<li><p>Add multi-output support to <code class="xref py py-class docutils literal notranslate"><span class="pre">gaussian_process.GaussianProcess</span></code>
by John Novak.</p></li>
<li><p>Support for precomputed distance matrices in nearest neighbor estimators
by <a class="reference external" href="https://twitter.com/robertlayton">Robert Layton</a> and <a class="reference external" href="https://joelnothman.com/">Joel Nothman</a>.</p></li>
<li><p>Norm computations optimized for NumPy 1.6 and later versions by
<a class="reference external" href="https://github.com/larsmans">Lars Buitinck</a>. In particular, the k-means algorithm no longer
needs a temporary data structure the size of its input.</p></li>
<li><p><a class="reference internal" href="../modules/generated/sklearn.dummy.DummyClassifier.html#sklearn.dummy.DummyClassifier" title="sklearn.dummy.DummyClassifier"><code class="xref py py-class docutils literal notranslate"><span class="pre">dummy.DummyClassifier</span></code></a> can now be used to predict a constant
output value. By <a class="reference external" href="https://manojbits.wordpress.com">Manoj Kumar</a>.</p></li>
<li><p><a class="reference internal" href="../modules/generated/sklearn.dummy.DummyRegressor.html#sklearn.dummy.DummyRegressor" title="sklearn.dummy.DummyRegressor"><code class="xref py py-class docutils literal notranslate"><span class="pre">dummy.DummyRegressor</span></code></a> has now a strategy parameter which allows
to predict the mean, the median of the training set or a constant
output value. By <a class="reference external" href="https://github.com/maheshakya">Maheshakya Wijewardena</a>.</p></li>
<li><p>Multi-label classification output in multilabel indicator format
is now supported by <a class="reference internal" href="../modules/generated/sklearn.metrics.roc_auc_score.html#sklearn.metrics.roc_auc_score" title="sklearn.metrics.roc_auc_score"><code class="xref py py-func docutils literal notranslate"><span class="pre">metrics.roc_auc_score</span></code></a> and
<a class="reference internal" href="../modules/generated/sklearn.metrics.average_precision_score.html#sklearn.metrics.average_precision_score" title="sklearn.metrics.average_precision_score"><code class="xref py py-func docutils literal notranslate"><span class="pre">metrics.average_precision_score</span></code></a> by <a class="reference external" href="http://www.ajoly.org">Arnaud Joly</a>.</p></li>
<li><p>Significant performance improvements (more than 100x speedup for
large problems) in <a class="reference internal" href="../modules/generated/sklearn.isotonic.IsotonicRegression.html#sklearn.isotonic.IsotonicRegression" title="sklearn.isotonic.IsotonicRegression"><code class="xref py py-class docutils literal notranslate"><span class="pre">isotonic.IsotonicRegression</span></code></a> by
<a class="reference external" href="https://tullo.ch/">Andrew Tulloch</a>.</p></li>
<li><p>Speed and memory usage improvements to the SGD algorithm for linear
models: it now uses threads, not separate processes, when <code class="docutils literal notranslate"><span class="pre">n_jobs&gt;1</span></code>.
By <a class="reference external" href="https://github.com/larsmans">Lars Buitinck</a>.</p></li>
<li><p>Grid search and cross validation allow NaNs in the input arrays so that
preprocessors such as <code class="xref py py-class docutils literal notranslate"><span class="pre">preprocessing.Imputer</span></code> can be trained within the cross validation loop,
avoiding potentially skewed results.</p></li>
<li><p>Ridge regression can now deal with sample weights in feature space
(only sample space until then). By <a class="reference external" href="https://github.com/eickenberg">Michael Eickenberg</a>.
Both solutions are provided by the Cholesky solver.</p></li>
<li><p>Several classification and regression metrics now support weighted
samples with the new <code class="docutils literal notranslate"><span class="pre">sample_weight</span></code> argument:
<a class="reference internal" href="../modules/generated/sklearn.metrics.accuracy_score.html#sklearn.metrics.accuracy_score" title="sklearn.metrics.accuracy_score"><code class="xref py py-func docutils literal notranslate"><span class="pre">metrics.accuracy_score</span></code></a>,
<a class="reference internal" href="../modules/generated/sklearn.metrics.zero_one_loss.html#sklearn.metrics.zero_one_loss" title="sklearn.metrics.zero_one_loss"><code class="xref py py-func docutils literal notranslate"><span class="pre">metrics.zero_one_loss</span></code></a>,
<a class="reference internal" href="../modules/generated/sklearn.metrics.precision_score.html#sklearn.metrics.precision_score" title="sklearn.metrics.precision_score"><code class="xref py py-func docutils literal notranslate"><span class="pre">metrics.precision_score</span></code></a>,
<a class="reference internal" href="../modules/generated/sklearn.metrics.average_precision_score.html#sklearn.metrics.average_precision_score" title="sklearn.metrics.average_precision_score"><code class="xref py py-func docutils literal notranslate"><span class="pre">metrics.average_precision_score</span></code></a>,
<a class="reference internal" href="../modules/generated/sklearn.metrics.f1_score.html#sklearn.metrics.f1_score" title="sklearn.metrics.f1_score"><code class="xref py py-func docutils literal notranslate"><span class="pre">metrics.f1_score</span></code></a>,
<a class="reference internal" href="../modules/generated/sklearn.metrics.fbeta_score.html#sklearn.metrics.fbeta_score" title="sklearn.metrics.fbeta_score"><code class="xref py py-func docutils literal notranslate"><span class="pre">metrics.fbeta_score</span></code></a>,
<a class="reference internal" href="../modules/generated/sklearn.metrics.recall_score.html#sklearn.metrics.recall_score" title="sklearn.metrics.recall_score"><code class="xref py py-func docutils literal notranslate"><span class="pre">metrics.recall_score</span></code></a>,
<a class="reference internal" href="../modules/generated/sklearn.metrics.roc_auc_score.html#sklearn.metrics.roc_auc_score" title="sklearn.metrics.roc_auc_score"><code class="xref py py-func docutils literal notranslate"><span class="pre">metrics.roc_auc_score</span></code></a>,
<a class="reference internal" href="../modules/generated/sklearn.metrics.explained_variance_score.html#sklearn.metrics.explained_variance_score" title="sklearn.metrics.explained_variance_score"><code class="xref py py-func docutils literal notranslate"><span class="pre">metrics.explained_variance_score</span></code></a>,
<a class="reference internal" href="../modules/generated/sklearn.metrics.mean_squared_error.html#sklearn.metrics.mean_squared_error" title="sklearn.metrics.mean_squared_error"><code class="xref py py-func docutils literal notranslate"><span class="pre">metrics.mean_squared_error</span></code></a>,
<a class="reference internal" href="../modules/generated/sklearn.metrics.mean_absolute_error.html#sklearn.metrics.mean_absolute_error" title="sklearn.metrics.mean_absolute_error"><code class="xref py py-func docutils literal notranslate"><span class="pre">metrics.mean_absolute_error</span></code></a>,
<a class="reference internal" href="../modules/generated/sklearn.metrics.r2_score.html#sklearn.metrics.r2_score" title="sklearn.metrics.r2_score"><code class="xref py py-func docutils literal notranslate"><span class="pre">metrics.r2_score</span></code></a>.
By <a class="reference external" href="https://github.com/ndawe">Noel Dawe</a>.</p></li>
<li><p>Speed up of the sample generator
<a class="reference internal" href="../modules/generated/sklearn.datasets.make_multilabel_classification.html#sklearn.datasets.make_multilabel_classification" title="sklearn.datasets.make_multilabel_classification"><code class="xref py py-func docutils literal notranslate"><span class="pre">datasets.make_multilabel_classification</span></code></a>. By <a class="reference external" href="https://joelnothman.com/">Joel Nothman</a>.</p></li>
</ul>
</div>
<div class="section" id="documentation-improvements">
<h3>Documentation improvements<a class="headerlink" href="#documentation-improvements" title="Permalink to this headline">¶</a></h3>
<ul class="simple">
<li><p>The <a class="reference internal" href="../tutorial/text_analytics/working_with_text_data.html#text-data-tutorial"><span class="std std-ref">Working With Text Data</span></a> tutorial
has now been worked in to the main documentation’s tutorial section.
Includes exercises and skeletons for tutorial presentation.
Original tutorial created by several authors including
<a class="reference external" href="https://twitter.com/ogrisel">Olivier Grisel</a>, Lars Buitinck and many others.
Tutorial integration into the scikit-learn documentation
by <a class="reference external" href="https://github.com/jaquesgrobler">Jaques Grobler</a></p></li>
<li><p>Added <a class="reference internal" href="../modules/computing.html#computational-performance"><span class="std std-ref">Computational Performance</span></a>
documentation. Discussion and examples of prediction latency / throughput
and different factors that have influence over speed. Additional tips for
building faster models and choosing a relevant compromise between speed
and predictive power.
By <a class="reference external" href="https://github.com/oddskool">Eustache Diemert</a>.</p></li>
</ul>
</div>
<div class="section" id="id2">
<h3>Bug fixes<a class="headerlink" href="#id2" title="Permalink to this headline">¶</a></h3>
<ul class="simple">
<li><p>Fixed bug in <a class="reference internal" href="../modules/generated/sklearn.decomposition.MiniBatchDictionaryLearning.html#sklearn.decomposition.MiniBatchDictionaryLearning" title="sklearn.decomposition.MiniBatchDictionaryLearning"><code class="xref py py-class docutils literal notranslate"><span class="pre">decomposition.MiniBatchDictionaryLearning</span></code></a> :
<code class="docutils literal notranslate"><span class="pre">partial_fit</span></code> was not working properly.</p></li>
<li><p>Fixed bug in <code class="xref py py-class docutils literal notranslate"><span class="pre">linear_model.stochastic_gradient</span></code> :
<code class="docutils literal notranslate"><span class="pre">l1_ratio</span></code> was used as <code class="docutils literal notranslate"><span class="pre">(1.0</span> <span class="pre">-</span> <span class="pre">l1_ratio)</span></code> .</p></li>
<li><p>Fixed bug in <a class="reference internal" href="../modules/generated/sklearn.multiclass.OneVsOneClassifier.html#sklearn.multiclass.OneVsOneClassifier" title="sklearn.multiclass.OneVsOneClassifier"><code class="xref py py-class docutils literal notranslate"><span class="pre">multiclass.OneVsOneClassifier</span></code></a> with string
labels</p></li>
<li><p>Fixed a bug in <a class="reference internal" href="../modules/generated/sklearn.linear_model.LassoCV.html#sklearn.linear_model.LassoCV" title="sklearn.linear_model.LassoCV"><code class="xref py py-class docutils literal notranslate"><span class="pre">LassoCV</span></code></a> and
<a class="reference internal" href="../modules/generated/sklearn.linear_model.ElasticNetCV.html#sklearn.linear_model.ElasticNetCV" title="sklearn.linear_model.ElasticNetCV"><code class="xref py py-class docutils literal notranslate"><span class="pre">ElasticNetCV</span></code></a>: they would not
pre-compute the Gram matrix with <code class="docutils literal notranslate"><span class="pre">precompute=True</span></code> or
<code class="docutils literal notranslate"><span class="pre">precompute=&quot;auto&quot;</span></code> and <code class="docutils literal notranslate"><span class="pre">n_samples</span> <span class="pre">&gt;</span> <span class="pre">n_features</span></code>. By <a class="reference external" href="https://manojbits.wordpress.com">Manoj Kumar</a>.</p></li>
<li><p>Fixed incorrect estimation of the degrees of freedom in
<a class="reference internal" href="../modules/generated/sklearn.feature_selection.f_regression.html#sklearn.feature_selection.f_regression" title="sklearn.feature_selection.f_regression"><code class="xref py py-func docutils literal notranslate"><span class="pre">feature_selection.f_regression</span></code></a> when variates are not centered.
By <a class="reference external" href="https://github.com/VirgileFritsch">Virgile Fritsch</a>.</p></li>
<li><p>Fixed a race condition in parallel processing with
<code class="docutils literal notranslate"><span class="pre">pre_dispatch</span> <span class="pre">!=</span> <span class="pre">&quot;all&quot;</span></code> (for instance, in <code class="docutils literal notranslate"><span class="pre">cross_val_score</span></code>).
By <a class="reference external" href="https://twitter.com/ogrisel">Olivier Grisel</a>.</p></li>
<li><p>Raise error in <a class="reference internal" href="../modules/generated/sklearn.cluster.FeatureAgglomeration.html#sklearn.cluster.FeatureAgglomeration" title="sklearn.cluster.FeatureAgglomeration"><code class="xref py py-class docutils literal notranslate"><span class="pre">cluster.FeatureAgglomeration</span></code></a> and
<code class="xref py py-class docutils literal notranslate"><span class="pre">cluster.WardAgglomeration</span></code> when no samples are given,
rather than returning meaningless clustering.</p></li>
<li><p>Fixed bug in <code class="xref py py-class docutils literal notranslate"><span class="pre">gradient_boosting.GradientBoostingRegressor</span></code> with
<code class="docutils literal notranslate"><span class="pre">loss='huber'</span></code>: <code class="docutils literal notranslate"><span class="pre">gamma</span></code> might have not been initialized.</p></li>
<li><p>Fixed feature importances as computed with a forest of randomized trees
when fit with <code class="docutils literal notranslate"><span class="pre">sample_weight</span> <span class="pre">!=</span> <span class="pre">None</span></code> and/or with <code class="docutils literal notranslate"><span class="pre">bootstrap=True</span></code>.
By <a class="reference external" href="http://www.montefiore.ulg.ac.be/~glouppe/">Gilles Louppe</a>.</p></li>
</ul>
</div>
</div>
<div class="section" id="api-changes-summary">
<h2>API changes summary<a class="headerlink" href="#api-changes-summary" title="Permalink to this headline">¶</a></h2>
<ul class="simple">
<li><p><code class="xref py py-mod docutils literal notranslate"><span class="pre">sklearn.hmm</span></code> is deprecated. Its removal is planned
for the 0.17 release.</p></li>
<li><p>Use of <code class="xref py py-class docutils literal notranslate"><span class="pre">covariance.EllipticEnvelop</span></code> has now been removed after
deprecation.
Please use <a class="reference internal" href="../modules/generated/sklearn.covariance.EllipticEnvelope.html#sklearn.covariance.EllipticEnvelope" title="sklearn.covariance.EllipticEnvelope"><code class="xref py py-class docutils literal notranslate"><span class="pre">covariance.EllipticEnvelope</span></code></a> instead.</p></li>
<li><p><code class="xref py py-class docutils literal notranslate"><span class="pre">cluster.Ward</span></code> is deprecated. Use
<a class="reference internal" href="../modules/generated/sklearn.cluster.AgglomerativeClustering.html#sklearn.cluster.AgglomerativeClustering" title="sklearn.cluster.AgglomerativeClustering"><code class="xref py py-class docutils literal notranslate"><span class="pre">cluster.AgglomerativeClustering</span></code></a> instead.</p></li>
<li><p><code class="xref py py-class docutils literal notranslate"><span class="pre">cluster.WardClustering</span></code> is deprecated. Use</p></li>
<li><p><a class="reference internal" href="../modules/generated/sklearn.cluster.AgglomerativeClustering.html#sklearn.cluster.AgglomerativeClustering" title="sklearn.cluster.AgglomerativeClustering"><code class="xref py py-class docutils literal notranslate"><span class="pre">cluster.AgglomerativeClustering</span></code></a> instead.</p></li>
<li><p><code class="xref py py-class docutils literal notranslate"><span class="pre">cross_validation.Bootstrap</span></code> is deprecated.
<code class="xref py py-class docutils literal notranslate"><span class="pre">cross_validation.KFold</span></code> or
<code class="xref py py-class docutils literal notranslate"><span class="pre">cross_validation.ShuffleSplit</span></code> are recommended instead.</p></li>
<li><p>Direct support for the sequence of sequences (or list of lists) multilabel
format is deprecated. To convert to and from the supported binary
indicator matrix format, use
<a class="reference internal" href="../modules/generated/sklearn.preprocessing.MultiLabelBinarizer.html#sklearn.preprocessing.MultiLabelBinarizer" title="sklearn.preprocessing.MultiLabelBinarizer"><code class="xref py py-class docutils literal notranslate"><span class="pre">MultiLabelBinarizer</span></code></a>.
By <a class="reference external" href="https://joelnothman.com/">Joel Nothman</a>.</p></li>
<li><p>Add score method to <a class="reference internal" href="../modules/generated/sklearn.decomposition.PCA.html#sklearn.decomposition.PCA" title="sklearn.decomposition.PCA"><code class="xref py py-class docutils literal notranslate"><span class="pre">PCA</span></code></a> following the model of
probabilistic PCA and deprecate
<code class="xref py py-class docutils literal notranslate"><span class="pre">ProbabilisticPCA</span></code> model whose
score implementation is not correct. The computation now also exploits the
matrix inversion lemma for faster computation. By <a class="reference external" href="http://alexandre.gramfort.net">Alexandre Gramfort</a>.</p></li>
<li><p>The score method of <a class="reference internal" href="../modules/generated/sklearn.decomposition.FactorAnalysis.html#sklearn.decomposition.FactorAnalysis" title="sklearn.decomposition.FactorAnalysis"><code class="xref py py-class docutils literal notranslate"><span class="pre">FactorAnalysis</span></code></a>
now returns the average log-likelihood of the samples. Use score_samples
to get log-likelihood of each sample. By <a class="reference external" href="http://alexandre.gramfort.net">Alexandre Gramfort</a>.</p></li>
<li><p>Generating boolean masks (the setting <code class="docutils literal notranslate"><span class="pre">indices=False</span></code>)
from cross-validation generators is deprecated.
Support for masks will be removed in 0.17.
The generators have produced arrays of indices by default since 0.10.
By <a class="reference external" href="https://joelnothman.com/">Joel Nothman</a>.</p></li>
<li><p>1-d arrays containing strings with <code class="docutils literal notranslate"><span class="pre">dtype=object</span></code> (as used in Pandas)
are now considered valid classification targets. This fixes a regression
from version 0.13 in some classifiers. By <a class="reference external" href="https://joelnothman.com/">Joel Nothman</a>.</p></li>
<li><p>Fix wrong <code class="docutils literal notranslate"><span class="pre">explained_variance_ratio_</span></code> attribute in
<code class="xref py py-class docutils literal notranslate"><span class="pre">RandomizedPCA</span></code>.
By <a class="reference external" href="http://alexandre.gramfort.net">Alexandre Gramfort</a>.</p></li>
<li><p>Fit alphas for each <code class="docutils literal notranslate"><span class="pre">l1_ratio</span></code> instead of <code class="docutils literal notranslate"><span class="pre">mean_l1_ratio</span></code> in
<a class="reference internal" href="../modules/generated/sklearn.linear_model.ElasticNetCV.html#sklearn.linear_model.ElasticNetCV" title="sklearn.linear_model.ElasticNetCV"><code class="xref py py-class docutils literal notranslate"><span class="pre">linear_model.ElasticNetCV</span></code></a> and <a class="reference internal" href="../modules/generated/sklearn.linear_model.LassoCV.html#sklearn.linear_model.LassoCV" title="sklearn.linear_model.LassoCV"><code class="xref py py-class docutils literal notranslate"><span class="pre">linear_model.LassoCV</span></code></a>.
This changes the shape of <code class="docutils literal notranslate"><span class="pre">alphas_</span></code> from <code class="docutils literal notranslate"><span class="pre">(n_alphas,)</span></code> to
<code class="docutils literal notranslate"><span class="pre">(n_l1_ratio,</span> <span class="pre">n_alphas)</span></code> if the <code class="docutils literal notranslate"><span class="pre">l1_ratio</span></code> provided is a 1-D array like
object of length greater than one.
By <a class="reference external" href="https://manojbits.wordpress.com">Manoj Kumar</a>.</p></li>
<li><p>Fix <a class="reference internal" href="../modules/generated/sklearn.linear_model.ElasticNetCV.html#sklearn.linear_model.ElasticNetCV" title="sklearn.linear_model.ElasticNetCV"><code class="xref py py-class docutils literal notranslate"><span class="pre">linear_model.ElasticNetCV</span></code></a> and <a class="reference internal" href="../modules/generated/sklearn.linear_model.LassoCV.html#sklearn.linear_model.LassoCV" title="sklearn.linear_model.LassoCV"><code class="xref py py-class docutils literal notranslate"><span class="pre">linear_model.LassoCV</span></code></a>
when fitting intercept and input data is sparse. The automatic grid
of alphas was not computed correctly and the scaling with normalize
was wrong. By <a class="reference external" href="https://manojbits.wordpress.com">Manoj Kumar</a>.</p></li>
<li><p>Fix wrong maximal number of features drawn (<code class="docutils literal notranslate"><span class="pre">max_features</span></code>) at each split
for decision trees, random forests and gradient tree boosting.
Previously, the count for the number of drawn features started only after
one non constant features in the split. This bug fix will affect
computational and generalization performance of those algorithms in the
presence of constant features. To get back previous generalization
performance, you should modify the value of <code class="docutils literal notranslate"><span class="pre">max_features</span></code>.
By <a class="reference external" href="http://www.ajoly.org">Arnaud Joly</a>.</p></li>
<li><p>Fix wrong maximal number of features drawn (<code class="docutils literal notranslate"><span class="pre">max_features</span></code>) at each split
for <a class="reference internal" href="../modules/generated/sklearn.ensemble.ExtraTreesClassifier.html#sklearn.ensemble.ExtraTreesClassifier" title="sklearn.ensemble.ExtraTreesClassifier"><code class="xref py py-class docutils literal notranslate"><span class="pre">ensemble.ExtraTreesClassifier</span></code></a> and
<a class="reference internal" href="../modules/generated/sklearn.ensemble.ExtraTreesRegressor.html#sklearn.ensemble.ExtraTreesRegressor" title="sklearn.ensemble.ExtraTreesRegressor"><code class="xref py py-class docutils literal notranslate"><span class="pre">ensemble.ExtraTreesRegressor</span></code></a>. Previously, only non constant
features in the split was counted as drawn. Now constant features are
counted as drawn. Furthermore at least one feature must be non constant
in order to make a valid split. This bug fix will affect
computational and generalization performance of extra trees in the
presence of constant features. To get back previous generalization
performance, you should modify the value of <code class="docutils literal notranslate"><span class="pre">max_features</span></code>.
By <a class="reference external" href="http://www.ajoly.org">Arnaud Joly</a>.</p></li>
<li><p>Fix <code class="xref py py-func docutils literal notranslate"><span class="pre">utils.compute_class_weight</span></code> when <code class="docutils literal notranslate"><span class="pre">class_weight==&quot;auto&quot;</span></code>.
Previously it was broken for input of non-integer <code class="docutils literal notranslate"><span class="pre">dtype</span></code> and the
weighted array that was returned was wrong. By <a class="reference external" href="https://manojbits.wordpress.com">Manoj Kumar</a>.</p></li>
<li><p>Fix <code class="xref py py-class docutils literal notranslate"><span class="pre">cross_validation.Bootstrap</span></code> to return <code class="docutils literal notranslate"><span class="pre">ValueError</span></code>
when <code class="docutils literal notranslate"><span class="pre">n_train</span> <span class="pre">+</span> <span class="pre">n_test</span> <span class="pre">&gt;</span> <span class="pre">n</span></code>. By <a class="reference external" href="https://github.com/rphlypo">Ronald Phlypo</a>.</p></li>
</ul>
</div>
<div class="section" id="people">
<h2>People<a class="headerlink" href="#people" title="Permalink to this headline">¶</a></h2>
<p>List of contributors for release 0.15 by number of commits.</p>
<ul class="simple">
<li><p>312   Olivier Grisel</p></li>
<li><p>275   Lars Buitinck</p></li>
<li><p>221   Gael Varoquaux</p></li>
<li><p>148   Arnaud Joly</p></li>
<li><p>134   Johannes Schönberger</p></li>
<li><p>119   Gilles Louppe</p></li>
<li><p>113   Joel Nothman</p></li>
<li><p>111   Alexandre Gramfort</p></li>
<li><p>95   Jaques Grobler</p></li>
<li><p>89   Denis Engemann</p></li>
<li><p>83   Peter Prettenhofer</p></li>
<li><p>83   Alexander Fabisch</p></li>
<li><p>62   Mathieu Blondel</p></li>
<li><p>60   Eustache Diemert</p></li>
<li><p>60   Nelle Varoquaux</p></li>
<li><p>49   Michael Bommarito</p></li>
<li><p>45   Manoj-Kumar-S</p></li>
<li><p>28   Kyle Kastner</p></li>
<li><p>26   Andreas Mueller</p></li>
<li><p>22   Noel Dawe</p></li>
<li><p>21   Maheshakya Wijewardena</p></li>
<li><p>21   Brooke Osborn</p></li>
<li><p>21   Hamzeh Alsalhi</p></li>
<li><p>21   Jake VanderPlas</p></li>
<li><p>21   Philippe Gervais</p></li>
<li><p>19   Bala Subrahmanyam Varanasi</p></li>
<li><p>12   Ronald Phlypo</p></li>
<li><p>10   Mikhail Korobov</p></li>
<li><p>8   Thomas Unterthiner</p></li>
<li><p>8   Jeffrey Blackburne</p></li>
<li><p>8   eltermann</p></li>
<li><p>8   bwignall</p></li>
<li><p>7   Ankit Agrawal</p></li>
<li><p>7   CJ Carey</p></li>
<li><p>6   Daniel Nouri</p></li>
<li><p>6   Chen Liu</p></li>
<li><p>6   Michael Eickenberg</p></li>
<li><p>6   ugurthemaster</p></li>
<li><p>5   Aaron Schumacher</p></li>
<li><p>5   Baptiste Lagarde</p></li>
<li><p>5   Rajat Khanduja</p></li>
<li><p>5   Robert McGibbon</p></li>
<li><p>5   Sergio Pascual</p></li>
<li><p>4   Alexis Metaireau</p></li>
<li><p>4   Ignacio Rossi</p></li>
<li><p>4   Virgile Fritsch</p></li>
<li><p>4   Sebastian Säger</p></li>
<li><p>4   Ilambharathi Kanniah</p></li>
<li><p>4   sdenton4</p></li>
<li><p>4   Robert Layton</p></li>
<li><p>4   Alyssa</p></li>
<li><p>4   Amos Waterland</p></li>
<li><p>3   Andrew Tulloch</p></li>
<li><p>3   murad</p></li>
<li><p>3   Steven Maude</p></li>
<li><p>3   Karol Pysniak</p></li>
<li><p>3   Jacques Kvam</p></li>
<li><p>3   cgohlke</p></li>
<li><p>3   cjlin</p></li>
<li><p>3   Michael Becker</p></li>
<li><p>3   hamzeh</p></li>
<li><p>3   Eric Jacobsen</p></li>
<li><p>3   john collins</p></li>
<li><p>3   kaushik94</p></li>
<li><p>3   Erwin Marsi</p></li>
<li><p>2   csytracy</p></li>
<li><p>2   LK</p></li>
<li><p>2   Vlad Niculae</p></li>
<li><p>2   Laurent Direr</p></li>
<li><p>2   Erik Shilts</p></li>
<li><p>2   Raul Garreta</p></li>
<li><p>2   Yoshiki Vázquez Baeza</p></li>
<li><p>2   Yung Siang Liau</p></li>
<li><p>2   abhishek thakur</p></li>
<li><p>2   James Yu</p></li>
<li><p>2   Rohit Sivaprasad</p></li>
<li><p>2   Roland Szabo</p></li>
<li><p>2   amormachine</p></li>
<li><p>2   Alexis Mignon</p></li>
<li><p>2   Oscar Carlsson</p></li>
<li><p>2   Nantas Nardelli</p></li>
<li><p>2   jess010</p></li>
<li><p>2   kowalski87</p></li>
<li><p>2   Andrew Clegg</p></li>
<li><p>2   Federico Vaggi</p></li>
<li><p>2   Simon Frid</p></li>
<li><p>2   Félix-Antoine Fortin</p></li>
<li><p>1   Ralf Gommers</p></li>
<li><p>1   t-aft</p></li>
<li><p>1   Ronan Amicel</p></li>
<li><p>1   Rupesh Kumar Srivastava</p></li>
<li><p>1   Ryan Wang</p></li>
<li><p>1   Samuel Charron</p></li>
<li><p>1   Samuel St-Jean</p></li>
<li><p>1   Fabian Pedregosa</p></li>
<li><p>1   Skipper Seabold</p></li>
<li><p>1   Stefan Walk</p></li>
<li><p>1   Stefan van der Walt</p></li>
<li><p>1   Stephan Hoyer</p></li>
<li><p>1   Allen Riddell</p></li>
<li><p>1   Valentin Haenel</p></li>
<li><p>1   Vijay Ramesh</p></li>
<li><p>1   Will Myers</p></li>
<li><p>1   Yaroslav Halchenko</p></li>
<li><p>1   Yoni Ben-Meshulam</p></li>
<li><p>1   Yury V. Zaytsev</p></li>
<li><p>1   adrinjalali</p></li>
<li><p>1   ai8rahim</p></li>
<li><p>1   alemagnani</p></li>
<li><p>1   alex</p></li>
<li><p>1   benjamin wilson</p></li>
<li><p>1   chalmerlowe</p></li>
<li><p>1   dzikie drożdże</p></li>
<li><p>1   jamestwebber</p></li>
<li><p>1   matrixorz</p></li>
<li><p>1   popo</p></li>
<li><p>1   samuela</p></li>
<li><p>1   François Boulogne</p></li>
<li><p>1   Alexander Measure</p></li>
<li><p>1   Ethan White</p></li>
<li><p>1   Guilherme Trein</p></li>
<li><p>1   Hendrik Heuer</p></li>
<li><p>1   IvicaJovic</p></li>
<li><p>1   Jan Hendrik Metzen</p></li>
<li><p>1   Jean Michel Rouly</p></li>
<li><p>1   Eduardo Ariño de la Rubia</p></li>
<li><p>1   Jelle Zijlstra</p></li>
<li><p>1   Eddy L O Jansson</p></li>
<li><p>1   Denis</p></li>
<li><p>1   John</p></li>
<li><p>1   John Schmidt</p></li>
<li><p>1   Jorge Cañardo Alastuey</p></li>
<li><p>1   Joseph Perla</p></li>
<li><p>1   Joshua Vredevoogd</p></li>
<li><p>1   José Ricardo</p></li>
<li><p>1   Julien Miotte</p></li>
<li><p>1   Kemal Eren</p></li>
<li><p>1   Kenta Sato</p></li>
<li><p>1   David Cournapeau</p></li>
<li><p>1   Kyle Kelley</p></li>
<li><p>1   Daniele Medri</p></li>
<li><p>1   Laurent Luce</p></li>
<li><p>1   Laurent Pierron</p></li>
<li><p>1   Luis Pedro Coelho</p></li>
<li><p>1   DanielWeitzenfeld</p></li>
<li><p>1   Craig Thompson</p></li>
<li><p>1   Chyi-Kwei Yau</p></li>
<li><p>1   Matthew Brett</p></li>
<li><p>1   Matthias Feurer</p></li>
<li><p>1   Max Linke</p></li>
<li><p>1   Chris Filo Gorgolewski</p></li>
<li><p>1   Charles Earl</p></li>
<li><p>1   Michael Hanke</p></li>
<li><p>1   Michele Orrù</p></li>
<li><p>1   Bryan Lunt</p></li>
<li><p>1   Brian Kearns</p></li>
<li><p>1   Paul Butler</p></li>
<li><p>1   Paweł Mandera</p></li>
<li><p>1   Peter</p></li>
<li><p>1   Andrew Ash</p></li>
<li><p>1   Pietro Zambelli</p></li>
<li><p>1   staubda</p></li>
</ul>
</div>
</div>


      </div>
    <div class="container">
      <footer class="sk-content-footer">
            &copy; 2007 - 2019, scikit-learn developers (BSD License).
          <a href="../_sources/whats_new/v0.15.rst.txt" rel="nofollow">Show this page source</a>
      </footer>
    </div>
  </div>
</div>
<script src="../_static/js/vendor/bootstrap.min.js"></script>

<script>
    window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)};ga.l=+new Date;
    ga('create', 'UA-22606712-2', 'auto');
    ga('set', 'anonymizeIp', true);
    ga('send', 'pageview');
</script>
<script async src='https://www.google-analytics.com/analytics.js'></script>


<script>
$(document).ready(function() {
    /* Add a [>>>] button on the top-right corner of code samples to hide
     * the >>> and ... prompts and the output and thus make the code
     * copyable. */
    var div = $('.highlight-python .highlight,' +
                '.highlight-python3 .highlight,' +
                '.highlight-pycon .highlight,' +
		'.highlight-default .highlight')
    var pre = div.find('pre');

    // get the styles from the current theme
    pre.parent().parent().css('position', 'relative');
    var hide_text = 'Hide prompts and outputs';
    var show_text = 'Show prompts and outputs';

    // create and add the button to all the code blocks that contain >>>
    div.each(function(index) {
        var jthis = $(this);
        if (jthis.find('.gp').length > 0) {
            var button = $('<span class="copybutton">&gt;&gt;&gt;</span>');
            button.attr('title', hide_text);
            button.data('hidden', 'false');
            jthis.prepend(button);
        }
        // tracebacks (.gt) contain bare text elements that need to be
        // wrapped in a span to work with .nextUntil() (see later)
        jthis.find('pre:has(.gt)').contents().filter(function() {
            return ((this.nodeType == 3) && (this.data.trim().length > 0));
        }).wrap('<span>');
    });

    // define the behavior of the button when it's clicked
    $('.copybutton').click(function(e){
        e.preventDefault();
        var button = $(this);
        if (button.data('hidden') === 'false') {
            // hide the code output
            button.parent().find('.go, .gp, .gt').hide();
            button.next('pre').find('.gt').nextUntil('.gp, .go').css('visibility', 'hidden');
            button.css('text-decoration', 'line-through');
            button.attr('title', show_text);
            button.data('hidden', 'true');
        } else {
            // show the code output
            button.parent().find('.go, .gp, .gt').show();
            button.next('pre').find('.gt').nextUntil('.gp, .go').css('visibility', 'visible');
            button.css('text-decoration', 'none');
            button.attr('title', hide_text);
            button.data('hidden', 'false');
        }
    });

	/*** Add permalink buttons next to glossary terms ***/
	$('dl.glossary > dt[id]').append(function() {
		return ('<a class="headerlink" href="#' +
			    this.getAttribute('id') +
			    '" title="Permalink to this term">¶</a>');
	});
  /*** Hide navbar when scrolling down ***/
  // Returns true when headerlink target matches hash in url
  (function() {
    hashTargetOnTop = function() {
        var hash = window.location.hash;
        if ( hash.length < 2 ) { return false; }

        var target = document.getElementById( hash.slice(1) );
        if ( target === null ) { return false; }

        var top = target.getBoundingClientRect().top;
        return (top < 2) && (top > -2);
    };

    // Hide navbar on load if hash target is on top
    var navBar = document.getElementById("navbar");
    var navBarToggler = document.getElementById("sk-navbar-toggler");
    var navBarHeightHidden = "-" + navBar.getBoundingClientRect().height + "px";
    var $window = $(window);

    hideNavBar = function() {
        navBar.style.top = navBarHeightHidden;
    };

    showNavBar = function() {
        navBar.style.top = "0";
    }

    if (hashTargetOnTop()) {
        hideNavBar()
    }

    var prevScrollpos = window.pageYOffset;
    hideOnScroll = function(lastScrollTop) {
        if (($window.width() < 768) && (navBarToggler.getAttribute("aria-expanded") === 'true')) {
            return;
        }
        if (lastScrollTop > 2 && (prevScrollpos <= lastScrollTop) || hashTargetOnTop()){
            hideNavBar()
        } else {
            showNavBar()
        }
        prevScrollpos = lastScrollTop;
    };

    /*** high preformance scroll event listener***/
    var raf = window.requestAnimationFrame ||
        window.webkitRequestAnimationFrame ||
        window.mozRequestAnimationFrame ||
        window.msRequestAnimationFrame ||
        window.oRequestAnimationFrame;
    var lastScrollTop = $window.scrollTop();

    if (raf) {
        loop();
    }

    function loop() {
        var scrollTop = $window.scrollTop();
        if (lastScrollTop === scrollTop) {
            raf(loop);
            return;
        } else {
            lastScrollTop = scrollTop;
            hideOnScroll(lastScrollTop);
            raf(loop);
        }
    }
  })();
});

</script>
    
<script id="MathJax-script" async src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-chtml.js"></script>
    
</body>
</html>